"""
面试题:
什么是装饰器?
装饰器是一个用于增强函数功能的工具，本质是一个函数，
接收一个函数作为参数，并返回一个新的函数。
在不改变函数代码和调用方式的情况下，为函数添加一些新的附加功能
什么是迭代器？
迭代器是一个可以被逐个访问的对象，用来遍历容器类型（如列表、元组、字典、集合等）
### 什么是生成器？

生成器是简化版的迭代器，用于生成序列，
用 `yield` 而不是 `return` 来返回值。生成器自动实现了迭代器协议。
"""

def decorator(func):
    def wrapper():
        print("执行前")
        for i in range(5):
            print("*"*i)
        func()
        print("执行后")
    return wrapper
@decorator
def sayhello():
    print("hello")
# sayhello()



list1=[1,2,3,4]
item=iter(list1)   # iter 返回是容器的迭代器对象
print(next(item))
print(next(item))
print(next(item))
print(next(item))
print(next(item))



